package daikoku;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class GerarCombinacoes {

	/**
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		List<Regra> regras = new ArrayList<Regra>();
		regras.add(new RegraNaoSequencial());
		regras.add(new RegraSorteiosAnteriores());
		regras.add(new RegraParesImpares());
		regras.add(new RegraNaoVertical());

		List<Integer[]> prognosticos = prognosticos(10);
		for (Regra regra : regras) {
			regra.aplicar(prognosticos);
		}

		System.out.println("--------------------------");
		System.out.println("Boa Sorte!");
		System.out.println("--------------------------");
		for (Integer[] aposta : prognosticos) {
			StringUtils.print(aposta);
		}
	}

	/**
	 * 
	 * @param quantidade
	 * @return
	 */
	public static List<Integer[]> prognosticos(Integer quantidade) {
		List<Integer[]> result = new ArrayList<Integer[]>();
		for (int i = 0; i < quantidade; i++) {
			result.add(gerarAposta());
		}
		return result;
	}

	/**
	 * 
	 * @return
	 */
	public static Integer[] gerarAposta() {
		Integer[] result = new Integer[6];

		List<Integer> tmp = new ArrayList<Integer>();

		Random rnd = new Random();
		while (tmp.size() < 6) {
			Integer p1 = rnd.nextInt(60);
			if (p1 != 0 && !tmp.contains(p1)) {
				tmp.add(p1);
			}
		}

		Collections.sort(tmp);

		tmp.toArray(result);

		return result;
	}
}
